#ifndef HERO_H
#define HERO_H
#include "Minion.h"
#include "Position.h"
#include "Bullet.h"
#include "SlowBullet.h"

class Hero : public Minion
{
    public:
        Hero(Position);
        void getTurretPositions(std::vector<Position>&);
        void mouseAction(int,int,int,int);
        void beginBuild();
        void drawTimer();
        std::vector<Position> bestPath(const std::vector<Position>&,const Position);
        std::vector<Position> testPath(const std::vector<Position>&,const Position);
        bool checkBuildTimer(double);
        bool AutoFireAt(std::vector<Minion>&);
        void SkillTarget(int); // Handles the drawing of the player targeting
        void SetTarget(Position); // Sets the target variable of the hero
        void UseSkill();
        vector<Position> TurretPos;
        bool CheckSlowSkillTimer();
        bool Skill(std::vector<Minion> &); // Fires the selected Skill
        timer BuildTime;
        void Update();
        bool skill;
        virtual ~Hero();
    protected:
    private:
       bool hasBackPath(const std::vector<Position>&,const Position, const Position spot);
        Position Target;
        Bullet bullet;
        SlowBullet slowBullet;
        bool building;
        double TotalBuildTime;
        bool UsedSkill;


};

#endif // HERO_H

